package cn.scau.server.pojo;

import java.util.Date;
import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 *
 * </p>
 *
 * @author 代码不跑我先跑
 * @since 2025-03-30
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="Emp对象", description="")
public class Emp implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "emp_id", type = IdType.INPUT)
    @ApiModelProperty(value = "唯一标识每个员工")
    private String empId;

    @ApiModelProperty(value = "男1，女0")
    private String sex;

    @ApiModelProperty(value = "员工的全名")
    private String name;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "员工的出生日期")
    private Date birth;

    @ApiModelProperty(value = "员工的年龄，根据出生日期计算")
    private Integer age;

    @ApiModelProperty(value = "员工的身份证号码，中国大陆为18位")
    private String idNumber;

    @ApiModelProperty(value = "未婚为0，已婚为1")
    private String maritalStatus;

    @ApiModelProperty(value = "员工的民族")
    private String ethnicity;

    @ApiModelProperty(value = "员工的籍贯")
    private String nationality;

    @ApiModelProperty(value = "群众0，团员1，党员2，其他3")
    private String political;

    @ApiModelProperty(value = "员工的联系电话")
    private String phone;

    @ApiModelProperty(value = "员工的电子邮箱")
    private String email;

    @ApiModelProperty(value = "员工的居住地址")
    private String address;

    @ApiModelProperty(value = "员工的聘用形式，如“正式”、“合同”等")
    private String empForm;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "员工的入职日期")
    private Date entryDate;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "员工的转正日期")
    private Date regularizationDate;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "员工劳动合同的起始日期")
    private Date contractStartDate;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "员工劳动合同的截止日期")
    private Date contractEndDate;

    @ApiModelProperty(value = "员工劳动合同的年限")
    private Integer contractDuration;

    @ApiModelProperty(value = "小学0，初中1，高中2，本科3，硕士4，博士5，其他6")
    private String highestEducation;

    @ApiModelProperty(value = "详细地址")
    private String detailedAddress;

    @ApiModelProperty(value = "逻辑删除")
    private Integer isDeleted;

    @ApiModelProperty(value = "密码")
    private String password;

    public Integer getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }

    public String getHighestEducation() {
        return highestEducation;
    }

    public void setHighestEducation(String highestEducation) {
        this.highestEducation = highestEducation;
    }

    public Integer getContractDuration() {
        return contractDuration;
    }

    public void setContractDuration(Integer contractDuration) {
        this.contractDuration = contractDuration;
    }

    public Date getContractEndDate() {
        return contractEndDate;
    }

    public void setContractEndDate(Date contractEndDate) {
        this.contractEndDate = contractEndDate;
    }

    public Date getContractStartDate() {
        return contractStartDate;
    }

    public void setContractStartDate(Date contractStartDate) {
        this.contractStartDate = contractStartDate;
    }

    public Date getRegularizationDate() {
        return regularizationDate;
    }

    public void setRegularizationDate(Date regularizationDate) {
        this.regularizationDate = regularizationDate;
    }

    public Date getEntryDate() {
        return entryDate;
    }

    public void setEntryDate(Date entryDate) {
        this.entryDate = entryDate;
    }

    public String getEmpForm() {
        return empForm;
    }

    public void setEmpForm(String empForm) {
        this.empForm = empForm;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getPolitical() {
        return political;
    }

    public void setPolitical(String political) {
        this.political = political;
    }

    public String getNationality() {
        return nationality;
    }

    public void setNationality(String nationality) {
        this.nationality = nationality;
    }

    public String getEthnicity() {
        return ethnicity;
    }

    public void setEthnicity(String ethnicity) {
        this.ethnicity = ethnicity;
    }

    public String getMaritalStatus() {
        return maritalStatus;
    }

    public void setMaritalStatus(String maritalStatus) {
        this.maritalStatus = maritalStatus;
    }

    public String getIdNumber() {
        return idNumber;
    }

    public void setIdNumber(String idNumber) {
        this.idNumber = idNumber;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getEmpId() {
        return empId;
    }

    public void setEmpId(String empId) {
        this.empId = empId;
    }

    public String getDetailedAddress() {
        return detailedAddress;
    }

    public void setDetailedAddress(String detailedAddress) {
        this.detailedAddress = detailedAddress;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
